<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<title>ObjectType (Closure Compiler)</title>
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
    if (location.href.indexOf('is-external=true') == -1) {
        parent.document.title="ObjectType (Closure Compiler)";
    }
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!--   -->
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../com/google/javascript/rhino/jstype/NumberType.html" title="class in com.google.javascript.rhino.jstype"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../../com/google/javascript/rhino/jstype/Property.html" title="class in com.google.javascript.rhino.jstype"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?com/google/javascript/rhino/jstype/ObjectType.html" target="_top">Frames</a></li>
<li><a href="ObjectType.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested_classes_inherited_from_class_com.google.javascript.rhino.jstype.JSType">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#fields_inherited_from_class_com.google.javascript.rhino.jstype.JSType">Field</a>&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">com.google.javascript.rhino.jstype</div>
<h2 title="Class ObjectType" class="title">Class ObjectType</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html" title="class in com.google.javascript.rhino.jstype">com.google.javascript.rhino.jstype.JSType</a></li>
<li>
<ul class="inheritance">
<li>com.google.javascript.rhino.jstype.ObjectType</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="../../../../../com/google/javascript/rhino/jstype/StaticScope.html" title="interface in com.google.javascript.rhino.jstype">StaticScope</a>&lt;<a href="../../../../../com/google/javascript/rhino/jstype/JSType.html" title="class in com.google.javascript.rhino.jstype">JSType</a>&gt;, java.io.Serializable</dd>
</dl>
<dl>
<dt>Direct Known Subclasses:</dt>
<dd><a href="../../../../../com/google/javascript/rhino/jstype/EnumElementType.html" title="class in com.google.javascript.rhino.jstype">EnumElementType</a>, <a href="../../../../../com/google/javascript/rhino/jstype/EnumType.html" title="class in com.google.javascript.rhino.jstype">EnumType</a>, <a href="../../../../../com/google/javascript/rhino/jstype/FunctionType.html" title="class in com.google.javascript.rhino.jstype">FunctionType</a>, <a href="../../../../../com/google/javascript/rhino/jstype/TemplateType.html" title="class in com.google.javascript.rhino.jstype">TemplateType</a>, <a href="../../../../../com/google/javascript/rhino/jstype/TemplatizedType.html" title="class in com.google.javascript.rhino.jstype">TemplatizedType</a>, <a href="../../../../../com/google/javascript/rhino/jstype/UnknownType.html" title="class in com.google.javascript.rhino.jstype">UnknownType</a></dd>
</dl>
<hr>
<br>
<pre>public abstract class <span class="strong">ObjectType</span>
extends <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html" title="class in com.google.javascript.rhino.jstype">JSType</a>
implements <a href="../../../../../com/google/javascript/rhino/jstype/StaticScope.html" title="interface in com.google.javascript.rhino.jstype">StaticScope</a>&lt;<a href="../../../../../com/google/javascript/rhino/jstype/JSType.html" title="class in com.google.javascript.rhino.jstype">JSType</a>&gt;</pre>
<div class="block">Object type.

 In JavaScript, all object types have properties, and each of those
 properties has a type. Property types may be DECLARED, INFERRED, or
 UNKNOWN.

 DECLARED properties have an explicit type annotation, as in:
 <code>
 /xx @type {number} x/
 Foo.prototype.bar = 1;
 </code>
 This property may only hold number values, and an assignment to any
 other type of value is an error.

 INFERRED properties do not have an explicit type annotation. Rather,
 we try to find all the possible types that this property can hold.
 <code>
 Foo.prototype.bar = 1;
 </code>
 If the programmer assigns other types of values to this property,
 the property will take on the union of all these types.

 UNKNOWN properties are properties on the UNKNOWN type. The UNKNOWN
 type has all properties, but we do not know whether they are
 declared or inferred.</div>
<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../serialized-form.html#com.google.javascript.rhino.jstype.ObjectType">Serialized Form</a></dd></dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="nested_class_summary">
<!--   -->
</a>
<h3>Nested Class Summary</h3>
<ul class="blockList">
<li class="blockList"><a name="nested_classes_inherited_from_class_com.google.javascript.rhino.jstype.JSType">
<!--   -->
</a>
<h3>Nested classes/interfaces inherited from class&nbsp;com.google.javascript.rhino.jstype.<a href="../../../../../com/google/javascript/rhino/jstype/JSType.html" title="class in com.google.javascript.rhino.jstype">JSType</a></h3>
<code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.TypePair.html" title="class in com.google.javascript.rhino.jstype">JSType.TypePair</a></code></li>
</ul>
</li>
</ul>
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field_summary">
<!--   -->
</a>
<h3>Field Summary</h3>
<ul class="blockList">
<li class="blockList"><a name="fields_inherited_from_class_com.google.javascript.rhino.jstype.JSType">
<!--   -->
</a>
<h3>Fields inherited from class&nbsp;com.google.javascript.rhino.jstype.<a href="../../../../../com/google/javascript/rhino/jstype/JSType.html" title="class in com.google.javascript.rhino.jstype">JSType</a></h3>
<code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#EMPTY_TYPE_COMPONENT">EMPTY_TYPE_COMPONENT</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#ENUMDECL">ENUMDECL</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#NOT_A_CLASS">NOT_A_CLASS</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#NOT_A_TYPE">NOT_A_TYPE</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#NOT_ENUMDECL">NOT_ENUMDECL</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#templateTypeMap">templateTypeMap</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#UNKNOWN_NAME">UNKNOWN_NAME</a></code></li>
</ul>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method_summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html" title="class in com.google.javascript.rhino.jstype">ObjectType</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#cast(com.google.javascript.rhino.jstype.JSType)">cast</a></strong>(<a href="../../../../../com/google/javascript/rhino/jstype/JSType.html" title="class in com.google.javascript.rhino.jstype">JSType</a>&nbsp;type)</code>
<div class="block">A null-safe version of JSType#toObjectType.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#clearCachedValues()">clearCachedValues</a></strong>()</code>
<div class="block">Clear cached values.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><strong><a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#createDelegateSuffix(java.lang.String)">createDelegateSuffix</a></strong>(java.lang.String&nbsp;suffix)</code>
<div class="block">Creates a suffix for a proxy delegate.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#defineDeclaredProperty(java.lang.String, com.google.javascript.rhino.jstype.JSType, com.google.javascript.rhino.Node)">defineDeclaredProperty</a></strong>(java.lang.String&nbsp;propertyName,
                      <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html" title="class in com.google.javascript.rhino.jstype">JSType</a>&nbsp;type,
                      <a href="../../../../../com/google/javascript/rhino/Node.html" title="class in com.google.javascript.rhino">Node</a>&nbsp;propertyNode)</code>
<div class="block">Defines a property whose type is explicitly declared by the programmer.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#defineInferredProperty(java.lang.String, com.google.javascript.rhino.jstype.JSType, com.google.javascript.rhino.Node)">defineInferredProperty</a></strong>(java.lang.String&nbsp;propertyName,
                      <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html" title="class in com.google.javascript.rhino.jstype">JSType</a>&nbsp;type,
                      <a href="../../../../../com/google/javascript/rhino/Node.html" title="class in com.google.javascript.rhino">Node</a>&nbsp;propertyNode)</code>
<div class="block">Defines a property whose type is inferred.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#defineSynthesizedProperty(java.lang.String, com.google.javascript.rhino.jstype.JSType, com.google.javascript.rhino.Node)">defineSynthesizedProperty</a></strong>(java.lang.String&nbsp;propertyName,
                         <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html" title="class in com.google.javascript.rhino.jstype">JSType</a>&nbsp;type,
                         <a href="../../../../../com/google/javascript/rhino/Node.html" title="class in com.google.javascript.rhino">Node</a>&nbsp;propertyNode)</code>
<div class="block">Defines a property whose type is on a synthesized object.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html" title="class in com.google.javascript.rhino.jstype">JSType</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#findPropertyType(java.lang.String)">findPropertyType</a></strong>(java.lang.String&nbsp;propertyName)</code>
<div class="block">Coerces this type to an Object type, then gets the type of the property
 whose name is given.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>abstract <a href="../../../../../com/google/javascript/rhino/jstype/FunctionType.html" title="class in com.google.javascript.rhino.jstype">FunctionType</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#getConstructor()">getConstructor</a></strong>()</code>
<div class="block">Gets this object's constructor.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>java.lang.Iterable&lt;<a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html" title="class in com.google.javascript.rhino.jstype">ObjectType</a>&gt;</code></td>
<td class="colLast"><code><strong><a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#getCtorExtendedInterfaces()">getCtorExtendedInterfaces</a></strong>()</code>
<div class="block">Gets the interfaces extended by the interface associated with this type.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>java.lang.Iterable&lt;<a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html" title="class in com.google.javascript.rhino.jstype">ObjectType</a>&gt;</code></td>
<td class="colLast"><code><strong><a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#getCtorImplementedInterfaces()">getCtorImplementedInterfaces</a></strong>()</code>
<div class="block">Gets the interfaces implemented by the ctor associated with this type.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><strong><a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#getDisplayName()">getDisplayName</a></strong>()</code>
<div class="block">Returns a user meaningful label for the JSType instance.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>abstract <a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html" title="class in com.google.javascript.rhino.jstype">ObjectType</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#getImplicitPrototype()">getImplicitPrototype</a></strong>()</code>
<div class="block">Gets the implicit prototype (a.k.a.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../com/google/javascript/rhino/JSDocInfo.html" title="class in com.google.javascript.rhino">JSDocInfo</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#getJSDocInfo()">getJSDocInfo</a></strong>()</code>
<div class="block">Gets the docInfo for this type.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><strong><a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#getNormalizedReferenceName()">getNormalizedReferenceName</a></strong>()</code>
<div class="block">Due to the complexity of some of our internal type systems, sometimes
 we have different types constructed by the same constructor.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../com/google/javascript/rhino/jstype/FunctionType.html" title="class in com.google.javascript.rhino.jstype">FunctionType</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#getOwnerFunction()">getOwnerFunction</a></strong>()</code>
<div class="block">Gets the owner of this if it's a function prototype.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../com/google/javascript/rhino/JSDocInfo.html" title="class in com.google.javascript.rhino">JSDocInfo</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#getOwnPropertyJSDocInfo(java.lang.String)">getOwnPropertyJSDocInfo</a></strong>(java.lang.String&nbsp;propertyName)</code>
<div class="block">Gets the docInfo on the specified property on this type.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>java.util.Set&lt;java.lang.String&gt;</code></td>
<td class="colLast"><code><strong><a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#getOwnPropertyNames()">getOwnPropertyNames</a></strong>()</code>
<div class="block">Returns the names of all the properties directly on this type.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../com/google/javascript/rhino/jstype/Property.html" title="class in com.google.javascript.rhino.jstype">Property</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#getOwnSlot(java.lang.String)">getOwnSlot</a></strong>(java.lang.String&nbsp;name)</code>
<div class="block">Like <code>getSlot</code> but does not recurse into parent scopes.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html" title="class in com.google.javascript.rhino.jstype">ObjectType</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#getParentScope()">getParentScope</a></strong>()</code>
<div class="block">Returns the scope enclosing this one or null if none.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../com/google/javascript/rhino/jstype/BooleanLiteralSet.html" title="enum in com.google.javascript.rhino.jstype">BooleanLiteralSet</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#getPossibleToBooleanOutcomes()">getPossibleToBooleanOutcomes</a></strong>()</code>
<div class="block">Computes the set of possible outcomes of the <code>ToBoolean</code> predicate
 for this type.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><strong><a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#getPropertiesCount()">getPropertiesCount</a></strong>()</code>
<div class="block">Gets the number of properties of this object.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>java.util.Set&lt;java.lang.String&gt;</code></td>
<td class="colLast"><code><strong><a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#getPropertyNames()">getPropertyNames</a></strong>()</code>
<div class="block">Returns a list of properties defined or inferred on this type and any of
 its supertypes.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../com/google/javascript/rhino/Node.html" title="class in com.google.javascript.rhino">Node</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#getPropertyNode(java.lang.String)">getPropertyNode</a></strong>(java.lang.String&nbsp;propertyName)</code>
<div class="block">Gets the node corresponding to the definition of the specified property.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html" title="class in com.google.javascript.rhino.jstype">JSType</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#getPropertyType(java.lang.String)">getPropertyType</a></strong>(java.lang.String&nbsp;propertyName)</code>
<div class="block">Gets the property type of the property whose name is given.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>abstract java.lang.String</code></td>
<td class="colLast"><code><strong><a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#getReferenceName()">getReferenceName</a></strong>()</code>
<div class="block">Gets the reference name for this object.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../com/google/javascript/rhino/Node.html" title="class in com.google.javascript.rhino">Node</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#getRootNode()">getRootNode</a></strong>()</code>
<div class="block">Returns the root node associated with this scope.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../com/google/javascript/rhino/jstype/Property.html" title="class in com.google.javascript.rhino.jstype">Property</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#getSlot(java.lang.String)">getSlot</a></strong>(java.lang.String&nbsp;name)</code>
<div class="block">Default getSlot implementation.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>com.google.common.collect.ImmutableList&lt;<a href="../../../../../com/google/javascript/rhino/jstype/JSType.html" title="class in com.google.javascript.rhino.jstype">JSType</a>&gt;</code></td>
<td class="colLast"><code><strong><a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#getTemplateTypes()">getTemplateTypes</a></strong>()</code>
<div class="block">Gets the declared default element type.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html" title="class in com.google.javascript.rhino.jstype">JSType</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#getTypeOfThis()">getTypeOfThis</a></strong>()</code>
<div class="block">Returns the expected type of <code>this</code> in the current scope.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#hasCachedValues()">hasCachedValues</a></strong>()</code>
<div class="block">Returns true if any cached values have been set for this type.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#hasOwnProperty(java.lang.String)">hasOwnProperty</a></strong>(java.lang.String&nbsp;propertyName)</code>
<div class="block">Checks whether the property whose name is given is present directly on
 the object.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#hasProperty(java.lang.String)">hasProperty</a></strong>(java.lang.String&nbsp;propertyName)</code>
<div class="block">Checks whether the property is present on the object.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#hasReferenceName()">hasReferenceName</a></strong>()</code>
<div class="block">Returns true if the object is named.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#isFunctionPrototypeType()">isFunctionPrototypeType</a></strong>()</code>
<div class="block">Whether this is the prototype of a function.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#isNativeObjectType()">isNativeObjectType</a></strong>()</code>
<div class="block">Whether this is a built-in object.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#isObject()">isObject</a></strong>()</code>
<div class="block">Tests whether this type is an <code>Object</code>, or any subtype thereof.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#isPropertyInExterns(java.lang.String)">isPropertyInExterns</a></strong>(java.lang.String&nbsp;propertyName)</code>
<div class="block">Checks whether the property was defined in the externs.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#isPropertyTypeDeclared(java.lang.String)">isPropertyTypeDeclared</a></strong>(java.lang.String&nbsp;propertyName)</code>
<div class="block">Checks whether the property's type is declared.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#isPropertyTypeInferred(java.lang.String)">isPropertyTypeInferred</a></strong>(java.lang.String&nbsp;propertyName)</code>
<div class="block">Checks whether the property's type is inferred.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#isUnknownType()">isUnknownType</a></strong>()</code>
<div class="block">We treat this as the unknown type if any of its implicit prototype
 properties is unknown.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#removeProperty(java.lang.String)">removeProperty</a></strong>(java.lang.String&nbsp;propertyName)</code>
<div class="block">Removes the declared or inferred property from this ObjectType.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#setJSDocInfo(com.google.javascript.rhino.JSDocInfo)">setJSDocInfo</a></strong>(<a href="../../../../../com/google/javascript/rhino/JSDocInfo.html" title="class in com.google.javascript.rhino">JSDocInfo</a>&nbsp;info)</code>
<div class="block">Sets the docInfo for this type from the given
 <a href="../../../../../com/google/javascript/rhino/JSDocInfo.html" title="class in com.google.javascript.rhino"><code>JSDocInfo</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#setPropertyJSDocInfo(java.lang.String, com.google.javascript.rhino.JSDocInfo)">setPropertyJSDocInfo</a></strong>(java.lang.String&nbsp;propertyName,
                    <a href="../../../../../com/google/javascript/rhino/JSDocInfo.html" title="class in com.google.javascript.rhino">JSDocInfo</a>&nbsp;info)</code>
<div class="block">Sets the docInfo for the specified property from the
 <a href="../../../../../com/google/javascript/rhino/JSDocInfo.html" title="class in com.google.javascript.rhino"><code>JSDocInfo</code></a> on its definition.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../com/google/javascript/rhino/jstype/TernaryValue.html" title="enum in com.google.javascript.rhino.jstype">TernaryValue</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#testForEquality(com.google.javascript.rhino.jstype.JSType)">testForEquality</a></strong>(<a href="../../../../../com/google/javascript/rhino/jstype/JSType.html" title="class in com.google.javascript.rhino.jstype">JSType</a>&nbsp;that)</code>
<div class="block">Compares <code>this</code> and <code>that</code>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
<td class="colLast"><code><strong><a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#visit(com.google.javascript.rhino.jstype.Visitor)">visit</a></strong>(<a href="../../../../../com/google/javascript/rhino/jstype/Visitor.html" title="interface in com.google.javascript.rhino.jstype">Visitor</a>&lt;T&gt;&nbsp;visitor)</code>
<div class="block">Visit this type with the given visitor.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_com.google.javascript.rhino.jstype.JSType">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;com.google.javascript.rhino.jstype.<a href="../../../../../com/google/javascript/rhino/jstype/JSType.html" title="class in com.google.javascript.rhino.jstype">JSType</a></h3>
<code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#autobox()">autobox</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#autoboxesTo()">autoboxesTo</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#canBeCalled()">canBeCalled</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#canCastTo(com.google.javascript.rhino.jstype.JSType)">canCastTo</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#canTestForEqualityWith(com.google.javascript.rhino.jstype.JSType)">canTestForEqualityWith</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#canTestForShallowEqualityWith(com.google.javascript.rhino.jstype.JSType)">canTestForShallowEqualityWith</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#clearResolved()">clearResolved</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#collapseUnion()">collapseUnion</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#dereference()">dereference</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#differsFrom(com.google.javascript.rhino.jstype.JSType)">differsFrom</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#equals(java.lang.Object)">equals</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#extendTemplateTypeMap(com.google.javascript.rhino.jstype.TemplateTypeMap)">extendTemplateTypeMap</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#forceResolve(com.google.javascript.rhino.ErrorReporter, com.google.javascript.rhino.jstype.StaticScope)">forceResolve</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#getGreatestSubtype(com.google.javascript.rhino.jstype.JSType)">getGreatestSubtype</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#getLeastSupertype(com.google.javascript.rhino.jstype.JSType)">getLeastSupertype</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#getRestrictedTypeGivenToBooleanOutcome(boolean)">getRestrictedTypeGivenToBooleanOutcome</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#getTemplateTypeMap()">getTemplateTypeMap</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#getTypesUnderEquality(com.google.javascript.rhino.jstype.JSType)">getTypesUnderEquality</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#getTypesUnderInequality(com.google.javascript.rhino.jstype.JSType)">getTypesUnderInequality</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#getTypesUnderShallowEquality(com.google.javascript.rhino.jstype.JSType)">getTypesUnderShallowEquality</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#getTypesUnderShallowInequality(com.google.javascript.rhino.jstype.JSType)">getTypesUnderShallowInequality</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#hasAnyTemplateTypes()">hasAnyTemplateTypes</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#hasDisplayName()">hasDisplayName</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#hashCode()">hashCode</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#isAllType()">isAllType</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#isArrayType()">isArrayType</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#isBooleanObjectType()">isBooleanObjectType</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#isBooleanValueType()">isBooleanValueType</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#isCheckedUnknownType()">isCheckedUnknownType</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#isConstructor()">isConstructor</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#isDateType()">isDateType</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#isDict()">isDict</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#isEmptyType()">isEmptyType</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#isEnumElementType()">isEnumElementType</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#isEnumType()">isEnumType</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#isEquivalent(com.google.javascript.rhino.jstype.JSType, com.google.javascript.rhino.jstype.JSType)">isEquivalent</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#isEquivalentTo(com.google.javascript.rhino.jstype.JSType)">isEquivalentTo</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#isFunctionType()">isFunctionType</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#isGlobalThisType()">isGlobalThisType</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#isInstanceType()">isInstanceType</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#isInterface()">isInterface</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#isInvariant(com.google.javascript.rhino.jstype.JSType)">isInvariant</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#isNominalConstructor()">isNominalConstructor</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#isNominalType()">isNominalType</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#isNoObjectType()">isNoObjectType</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#isNoResolvedType()">isNoResolvedType</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#isNoType()">isNoType</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#isNullable()">isNullable</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#isNullType()">isNullType</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#isNumber()">isNumber</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#isNumberObjectType()">isNumberObjectType</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#isNumberValueType()">isNumberValueType</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#isOrdinaryFunction()">isOrdinaryFunction</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#isRecordType()">isRecordType</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#isRegexpType()">isRegexpType</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#isResolved()">isResolved</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#isString()">isString</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#isStringObjectType()">isStringObjectType</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#isStringValueType()">isStringValueType</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#isStruct()">isStruct</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#isSubtype(com.google.javascript.rhino.jstype.JSType)">isSubtype</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#isTemplateType()">isTemplateType</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#isTemplatizedType()">isTemplatizedType</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#isUnionType()">isUnionType</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#isVoidType()">isVoidType</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#matchConstraint(com.google.javascript.rhino.jstype.JSType)">matchConstraint</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#matchesInt32Context()">matchesInt32Context</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#matchesNumberContext()">matchesNumberContext</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#matchesObjectContext()">matchesObjectContext</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#matchesStringContext()">matchesStringContext</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#matchesUint32Context()">matchesUint32Context</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#resolve(com.google.javascript.rhino.ErrorReporter, com.google.javascript.rhino.jstype.StaticScope)">resolve</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#restrictByNotNullOrUndefined()">restrictByNotNullOrUndefined</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#setValidator(com.google.common.base.Predicate)">setValidator</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#toAnnotationString()">toAnnotationString</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#toDebugHashCodeString()">toDebugHashCodeString</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#toMaybeEnumElementType()">toMaybeEnumElementType</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#toMaybeEnumType()">toMaybeEnumType</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#toMaybeFunctionType()">toMaybeFunctionType</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#toMaybeFunctionType(com.google.javascript.rhino.jstype.JSType)">toMaybeFunctionType</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#toMaybeTemplateType()">toMaybeTemplateType</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#toMaybeTemplateType(com.google.javascript.rhino.jstype.JSType)">toMaybeTemplateType</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#toMaybeTemplatizedType()">toMaybeTemplatizedType</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#toMaybeTemplatizedType(com.google.javascript.rhino.jstype.JSType)">toMaybeTemplatizedType</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#toMaybeUnionType()">toMaybeUnionType</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#toObjectType()">toObjectType</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#toString()">toString</a>, <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#unboxesTo()">unboxesTo</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>clone, finalize, getClass, notify, notifyAll, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method_detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="getRootNode()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRootNode</h4>
<pre>public&nbsp;<a href="../../../../../com/google/javascript/rhino/Node.html" title="class in com.google.javascript.rhino">Node</a>&nbsp;getRootNode()</pre>
<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/StaticScope.html#getRootNode()">StaticScope</a></code></strong></div>
<div class="block">Returns the root node associated with this scope. May be null.</div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../../../com/google/javascript/rhino/jstype/StaticScope.html#getRootNode()">getRootNode</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/StaticScope.html" title="interface in com.google.javascript.rhino.jstype">StaticScope</a>&lt;<a href="../../../../../com/google/javascript/rhino/jstype/JSType.html" title="class in com.google.javascript.rhino.jstype">JSType</a>&gt;</code></dd>
</dl>
</li>
</ul>
<a name="getParentScope()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getParentScope</h4>
<pre>public&nbsp;<a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html" title="class in com.google.javascript.rhino.jstype">ObjectType</a>&nbsp;getParentScope()</pre>
<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/StaticScope.html#getParentScope()">StaticScope</a></code></strong></div>
<div class="block">Returns the scope enclosing this one or null if none.</div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../../../com/google/javascript/rhino/jstype/StaticScope.html#getParentScope()">getParentScope</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/StaticScope.html" title="interface in com.google.javascript.rhino.jstype">StaticScope</a>&lt;<a href="../../../../../com/google/javascript/rhino/jstype/JSType.html" title="class in com.google.javascript.rhino.jstype">JSType</a>&gt;</code></dd>
</dl>
</li>
</ul>
<a name="getSlot(java.lang.String)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSlot</h4>
<pre>public&nbsp;<a href="../../../../../com/google/javascript/rhino/jstype/Property.html" title="class in com.google.javascript.rhino.jstype">Property</a>&nbsp;getSlot(java.lang.String&nbsp;name)</pre>
<div class="block">Default getSlot implementation. This gets overridden by FunctionType
 for lazily-resolved prototypes.</div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../../../com/google/javascript/rhino/jstype/StaticScope.html#getSlot(java.lang.String)">getSlot</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/StaticScope.html" title="interface in com.google.javascript.rhino.jstype">StaticScope</a>&lt;<a href="../../../../../com/google/javascript/rhino/jstype/JSType.html" title="class in com.google.javascript.rhino.jstype">JSType</a>&gt;</code></dd>
<dt><span class="strong">Parameters:</span></dt><dd><code>name</code> - The name of the variable slot to look up.</dd>
<dt><span class="strong">Returns:</span></dt><dd>The defined slot for the variable, or <code>null</code> if no
         definition exists.</dd></dl>
</li>
</ul>
<a name="getOwnSlot(java.lang.String)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getOwnSlot</h4>
<pre>public&nbsp;<a href="../../../../../com/google/javascript/rhino/jstype/Property.html" title="class in com.google.javascript.rhino.jstype">Property</a>&nbsp;getOwnSlot(java.lang.String&nbsp;name)</pre>
<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/StaticScope.html#getOwnSlot(java.lang.String)">StaticScope</a></code></strong></div>
<div class="block">Like <code>getSlot</code> but does not recurse into parent scopes.</div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../../../com/google/javascript/rhino/jstype/StaticScope.html#getOwnSlot(java.lang.String)">getOwnSlot</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/StaticScope.html" title="interface in com.google.javascript.rhino.jstype">StaticScope</a>&lt;<a href="../../../../../com/google/javascript/rhino/jstype/JSType.html" title="class in com.google.javascript.rhino.jstype">JSType</a>&gt;</code></dd>
</dl>
</li>
</ul>
<a name="getTypeOfThis()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTypeOfThis</h4>
<pre>public&nbsp;<a href="../../../../../com/google/javascript/rhino/jstype/JSType.html" title="class in com.google.javascript.rhino.jstype">JSType</a>&nbsp;getTypeOfThis()</pre>
<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/StaticScope.html#getTypeOfThis()">StaticScope</a></code></strong></div>
<div class="block">Returns the expected type of <code>this</code> in the current scope.</div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../../../com/google/javascript/rhino/jstype/StaticScope.html#getTypeOfThis()">getTypeOfThis</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/StaticScope.html" title="interface in com.google.javascript.rhino.jstype">StaticScope</a>&lt;<a href="../../../../../com/google/javascript/rhino/jstype/JSType.html" title="class in com.google.javascript.rhino.jstype">JSType</a>&gt;</code></dd>
</dl>
</li>
</ul>
<a name="getTemplateTypes()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTemplateTypes</h4>
<pre>public&nbsp;com.google.common.collect.ImmutableList&lt;<a href="../../../../../com/google/javascript/rhino/jstype/JSType.html" title="class in com.google.javascript.rhino.jstype">JSType</a>&gt;&nbsp;getTemplateTypes()</pre>
<div class="block">Gets the declared default element type.</div>
<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../com/google/javascript/rhino/jstype/TemplatizedType.html" title="class in com.google.javascript.rhino.jstype"><code>TemplatizedType</code></a></dd></dl>
</li>
</ul>
<a name="getJSDocInfo()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getJSDocInfo</h4>
<pre>public&nbsp;<a href="../../../../../com/google/javascript/rhino/JSDocInfo.html" title="class in com.google.javascript.rhino">JSDocInfo</a>&nbsp;getJSDocInfo()</pre>
<div class="block">Gets the docInfo for this type.</div>
<dl>
<dt><strong>Overrides:</strong></dt>
<dd><code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#getJSDocInfo()">getJSDocInfo</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html" title="class in com.google.javascript.rhino.jstype">JSType</a></code></dd>
</dl>
</li>
</ul>
<a name="setJSDocInfo(com.google.javascript.rhino.JSDocInfo)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setJSDocInfo</h4>
<pre>public&nbsp;void&nbsp;setJSDocInfo(<a href="../../../../../com/google/javascript/rhino/JSDocInfo.html" title="class in com.google.javascript.rhino">JSDocInfo</a>&nbsp;info)</pre>
<div class="block">Sets the docInfo for this type from the given
 <a href="../../../../../com/google/javascript/rhino/JSDocInfo.html" title="class in com.google.javascript.rhino"><code>JSDocInfo</code></a>. The <code>JSDocInfo</code> may be <code>null</code>.</div>
</li>
</ul>
<a name="getReferenceName()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getReferenceName</h4>
<pre>public abstract&nbsp;java.lang.String&nbsp;getReferenceName()</pre>
<div class="block">Gets the reference name for this object. This includes named types
 like constructors, prototypes, and enums. It notably does not include
 literal types like strings and booleans and structural types.</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>the object's name or <code>null</code> if this is an anonymous
         object</dd></dl>
</li>
</ul>
<a name="getNormalizedReferenceName()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getNormalizedReferenceName</h4>
<pre>public&nbsp;java.lang.String&nbsp;getNormalizedReferenceName()</pre>
<div class="block">Due to the complexity of some of our internal type systems, sometimes
 we have different types constructed by the same constructor.
 In other parts of the type system, these are called delegates.
 We construct these types by appending suffixes to the constructor name.

 The normalized reference name does not have these suffixes, and as such,
 recollapses these implicit types back to their real type.</div>
</li>
</ul>
<a name="getDisplayName()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDisplayName</h4>
<pre>public&nbsp;java.lang.String&nbsp;getDisplayName()</pre>
<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#getDisplayName()">JSType</a></code></strong></div>
<div class="block">Returns a user meaningful label for the JSType instance.  For example,
 Functions and Enums will return their declaration name (if they have one).
 Some types will not have a meaningful display name.  Calls to
 hasDisplayName() will return true IFF getDisplayName() will return null
 or a zero length string.</div>
<dl>
<dt><strong>Overrides:</strong></dt>
<dd><code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#getDisplayName()">getDisplayName</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html" title="class in com.google.javascript.rhino.jstype">JSType</a></code></dd>
<dt><span class="strong">Returns:</span></dt><dd>the display name of the type, or null if one is not available</dd></dl>
</li>
</ul>
<a name="createDelegateSuffix(java.lang.String)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createDelegateSuffix</h4>
<pre>public static&nbsp;java.lang.String&nbsp;createDelegateSuffix(java.lang.String&nbsp;suffix)</pre>
<div class="block">Creates a suffix for a proxy delegate.</div>
<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#getNormalizedReferenceName()"><code>getNormalizedReferenceName()</code></a></dd></dl>
</li>
</ul>
<a name="hasReferenceName()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>hasReferenceName</h4>
<pre>public&nbsp;boolean&nbsp;hasReferenceName()</pre>
<div class="block">Returns true if the object is named.</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>true if the object is named, false if it is anonymous</dd></dl>
</li>
</ul>
<a name="testForEquality(com.google.javascript.rhino.jstype.JSType)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testForEquality</h4>
<pre>public&nbsp;<a href="../../../../../com/google/javascript/rhino/jstype/TernaryValue.html" title="enum in com.google.javascript.rhino.jstype">TernaryValue</a>&nbsp;testForEquality(<a href="../../../../../com/google/javascript/rhino/jstype/JSType.html" title="class in com.google.javascript.rhino.jstype">JSType</a>&nbsp;that)</pre>
<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#testForEquality(com.google.javascript.rhino.jstype.JSType)">JSType</a></code></strong></div>
<div class="block">Compares <code>this</code> and <code>that</code>.</div>
<dl>
<dt><strong>Overrides:</strong></dt>
<dd><code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#testForEquality(com.google.javascript.rhino.jstype.JSType)">testForEquality</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html" title="class in com.google.javascript.rhino.jstype">JSType</a></code></dd>
<dt><span class="strong">Returns:</span></dt><dd><ul>
 <li><a href="../../../../../com/google/javascript/rhino/jstype/TernaryValue.html#TRUE"><code>TernaryValue.TRUE</code></a> if the comparison of values of
   <code>this</code> type and <code>that</code> always succeed (such as
   <code>undefined</code> compared to <code>null</code>)</li>
 <li><a href="../../../../../com/google/javascript/rhino/jstype/TernaryValue.html#FALSE"><code>TernaryValue.FALSE</code></a> if the comparison of values of
   <code>this</code> type and <code>that</code> always fails (such as
   <code>undefined</code> compared to <code>number</code>)</li>
 <li><a href="../../../../../com/google/javascript/rhino/jstype/TernaryValue.html#UNKNOWN"><code>TernaryValue.UNKNOWN</code></a> if the comparison can succeed or
   fail depending on the concrete values</li>
 </ul></dd></dl>
</li>
</ul>
<a name="getConstructor()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getConstructor</h4>
<pre>public abstract&nbsp;<a href="../../../../../com/google/javascript/rhino/jstype/FunctionType.html" title="class in com.google.javascript.rhino.jstype">FunctionType</a>&nbsp;getConstructor()</pre>
<div class="block">Gets this object's constructor.</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>this object's constructor or <code>null</code> if it is a native
 object (constructed natively v.s. by instantiation of a function)</dd></dl>
</li>
</ul>
<a name="getImplicitPrototype()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getImplicitPrototype</h4>
<pre>public abstract&nbsp;<a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html" title="class in com.google.javascript.rhino.jstype">ObjectType</a>&nbsp;getImplicitPrototype()</pre>
<div class="block">Gets the implicit prototype (a.k.a. the <code>[[Prototype]]</code> property).</div>
</li>
</ul>
<a name="defineDeclaredProperty(java.lang.String, com.google.javascript.rhino.jstype.JSType, com.google.javascript.rhino.Node)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>defineDeclaredProperty</h4>
<pre>public final&nbsp;boolean&nbsp;defineDeclaredProperty(java.lang.String&nbsp;propertyName,
                             <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html" title="class in com.google.javascript.rhino.jstype">JSType</a>&nbsp;type,
                             <a href="../../../../../com/google/javascript/rhino/Node.html" title="class in com.google.javascript.rhino">Node</a>&nbsp;propertyNode)</pre>
<div class="block">Defines a property whose type is explicitly declared by the programmer.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>propertyName</code> - the property's name</dd><dd><code>type</code> - the type</dd><dd><code>propertyNode</code> - the node corresponding to the declaration of property
        which might later be accessed using <code>getPropertyNode</code>.</dd></dl>
</li>
</ul>
<a name="defineSynthesizedProperty(java.lang.String, com.google.javascript.rhino.jstype.JSType, com.google.javascript.rhino.Node)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>defineSynthesizedProperty</h4>
<pre>public final&nbsp;boolean&nbsp;defineSynthesizedProperty(java.lang.String&nbsp;propertyName,
                                <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html" title="class in com.google.javascript.rhino.jstype">JSType</a>&nbsp;type,
                                <a href="../../../../../com/google/javascript/rhino/Node.html" title="class in com.google.javascript.rhino">Node</a>&nbsp;propertyNode)</pre>
<div class="block">Defines a property whose type is on a synthesized object. These objects
 don't actually exist in the user's program. They're just used for
 bookkeeping in the type system.</div>
</li>
</ul>
<a name="defineInferredProperty(java.lang.String, com.google.javascript.rhino.jstype.JSType, com.google.javascript.rhino.Node)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>defineInferredProperty</h4>
<pre>public final&nbsp;boolean&nbsp;defineInferredProperty(java.lang.String&nbsp;propertyName,
                             <a href="../../../../../com/google/javascript/rhino/jstype/JSType.html" title="class in com.google.javascript.rhino.jstype">JSType</a>&nbsp;type,
                             <a href="../../../../../com/google/javascript/rhino/Node.html" title="class in com.google.javascript.rhino">Node</a>&nbsp;propertyNode)</pre>
<div class="block">Defines a property whose type is inferred.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>propertyName</code> - the property's name</dd><dd><code>type</code> - the type</dd><dd><code>propertyNode</code> - the node corresponding to the inferred definition of
        property that might later be accessed using <code>getPropertyNode</code>.</dd></dl>
</li>
</ul>
<a name="removeProperty(java.lang.String)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>removeProperty</h4>
<pre>public&nbsp;boolean&nbsp;removeProperty(java.lang.String&nbsp;propertyName)</pre>
<div class="block">Removes the declared or inferred property from this ObjectType.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>propertyName</code> - the property's name</dd>
<dt><span class="strong">Returns:</span></dt><dd>true if the property was removed successfully. False if the
         property did not exist, or could not be removed.</dd></dl>
</li>
</ul>
<a name="getPropertyNode(java.lang.String)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPropertyNode</h4>
<pre>public&nbsp;<a href="../../../../../com/google/javascript/rhino/Node.html" title="class in com.google.javascript.rhino">Node</a>&nbsp;getPropertyNode(java.lang.String&nbsp;propertyName)</pre>
<div class="block">Gets the node corresponding to the definition of the specified property.
 This could be the node corresponding to declaration of the property or the
 node corresponding to the first reference to this property, e.g.,
 "this.propertyName" in a constructor. Note this is mainly intended to be
 an estimate of where in the source code a property is defined. Sometime
 the returned node is not even part of the global AST but in the AST of the
 JsDoc that defines a type.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>propertyName</code> - the name of the property</dd>
<dt><span class="strong">Returns:</span></dt><dd>the <code>Node</code> corresponding to the property or null.</dd></dl>
</li>
</ul>
<a name="getOwnPropertyJSDocInfo(java.lang.String)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getOwnPropertyJSDocInfo</h4>
<pre>public&nbsp;<a href="../../../../../com/google/javascript/rhino/JSDocInfo.html" title="class in com.google.javascript.rhino">JSDocInfo</a>&nbsp;getOwnPropertyJSDocInfo(java.lang.String&nbsp;propertyName)</pre>
<div class="block">Gets the docInfo on the specified property on this type.  This should not
 be implemented recursively, as you generally need to know exactly on
 which type in the prototype chain the JSDocInfo exists.</div>
</li>
</ul>
<a name="setPropertyJSDocInfo(java.lang.String, com.google.javascript.rhino.JSDocInfo)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setPropertyJSDocInfo</h4>
<pre>public&nbsp;void&nbsp;setPropertyJSDocInfo(java.lang.String&nbsp;propertyName,
                        <a href="../../../../../com/google/javascript/rhino/JSDocInfo.html" title="class in com.google.javascript.rhino">JSDocInfo</a>&nbsp;info)</pre>
<div class="block">Sets the docInfo for the specified property from the
 <a href="../../../../../com/google/javascript/rhino/JSDocInfo.html" title="class in com.google.javascript.rhino"><code>JSDocInfo</code></a> on its definition.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>info</code> - <code>JSDocInfo</code> for the property definition. May be
        <code>null</code>.</dd></dl>
</li>
</ul>
<a name="findPropertyType(java.lang.String)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>findPropertyType</h4>
<pre>public&nbsp;<a href="../../../../../com/google/javascript/rhino/jstype/JSType.html" title="class in com.google.javascript.rhino.jstype">JSType</a>&nbsp;findPropertyType(java.lang.String&nbsp;propertyName)</pre>
<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#findPropertyType(java.lang.String)">JSType</a></code></strong></div>
<div class="block">Coerces this type to an Object type, then gets the type of the property
 whose name is given.

 Unlike <a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html#getPropertyType(java.lang.String)"><code>getPropertyType(java.lang.String)</code></a>, returns null if the property
 is not found.</div>
<dl>
<dt><strong>Overrides:</strong></dt>
<dd><code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#findPropertyType(java.lang.String)">findPropertyType</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html" title="class in com.google.javascript.rhino.jstype">JSType</a></code></dd>
<dt><span class="strong">Returns:</span></dt><dd>The property's type. <code>null</code> if the current type cannot
     have properties, or if the type is not found.</dd></dl>
</li>
</ul>
<a name="getPropertyType(java.lang.String)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPropertyType</h4>
<pre>public&nbsp;<a href="../../../../../com/google/javascript/rhino/jstype/JSType.html" title="class in com.google.javascript.rhino.jstype">JSType</a>&nbsp;getPropertyType(java.lang.String&nbsp;propertyName)</pre>
<div class="block">Gets the property type of the property whose name is given. If the
 underlying object does not have this property, the Unknown type is
 returned to indicate that no information is available on this property.

 This gets overridden by FunctionType for lazily-resolved call() and
 bind() functions.</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>the property's type or <a href="../../../../../com/google/javascript/rhino/jstype/UnknownType.html" title="class in com.google.javascript.rhino.jstype"><code>UnknownType</code></a>. This method never
         returns <code>null</code>.</dd></dl>
</li>
</ul>
<a name="hasProperty(java.lang.String)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>hasProperty</h4>
<pre>public&nbsp;boolean&nbsp;hasProperty(java.lang.String&nbsp;propertyName)</pre>
<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#hasProperty(java.lang.String)">JSType</a></code></strong></div>
<div class="block">Checks whether the property is present on the object.</div>
<dl>
<dt><strong>Overrides:</strong></dt>
<dd><code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#hasProperty(java.lang.String)">hasProperty</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html" title="class in com.google.javascript.rhino.jstype">JSType</a></code></dd>
<dt><span class="strong">Parameters:</span></dt><dd><code>propertyName</code> - The property name.</dd></dl>
</li>
</ul>
<a name="hasOwnProperty(java.lang.String)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>hasOwnProperty</h4>
<pre>public&nbsp;boolean&nbsp;hasOwnProperty(java.lang.String&nbsp;propertyName)</pre>
<div class="block">Checks whether the property whose name is given is present directly on
 the object.  Returns false even if it is declared on a supertype.</div>
</li>
</ul>
<a name="getOwnPropertyNames()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getOwnPropertyNames</h4>
<pre>public&nbsp;java.util.Set&lt;java.lang.String&gt;&nbsp;getOwnPropertyNames()</pre>
<div class="block">Returns the names of all the properties directly on this type.

 Overridden by FunctionType to add "prototype".</div>
</li>
</ul>
<a name="isPropertyTypeInferred(java.lang.String)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isPropertyTypeInferred</h4>
<pre>public&nbsp;boolean&nbsp;isPropertyTypeInferred(java.lang.String&nbsp;propertyName)</pre>
<div class="block">Checks whether the property's type is inferred.</div>
</li>
</ul>
<a name="isPropertyTypeDeclared(java.lang.String)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isPropertyTypeDeclared</h4>
<pre>public&nbsp;boolean&nbsp;isPropertyTypeDeclared(java.lang.String&nbsp;propertyName)</pre>
<div class="block">Checks whether the property's type is declared.</div>
</li>
</ul>
<a name="isPropertyInExterns(java.lang.String)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isPropertyInExterns</h4>
<pre>public&nbsp;boolean&nbsp;isPropertyInExterns(java.lang.String&nbsp;propertyName)</pre>
<div class="block">Checks whether the property was defined in the externs.</div>
</li>
</ul>
<a name="getPropertiesCount()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPropertiesCount</h4>
<pre>public&nbsp;int&nbsp;getPropertiesCount()</pre>
<div class="block">Gets the number of properties of this object.</div>
</li>
</ul>
<a name="getPropertyNames()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPropertyNames</h4>
<pre>public&nbsp;java.util.Set&lt;java.lang.String&gt;&nbsp;getPropertyNames()</pre>
<div class="block">Returns a list of properties defined or inferred on this type and any of
 its supertypes.</div>
</li>
</ul>
<a name="visit(com.google.javascript.rhino.jstype.Visitor)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>visit</h4>
<pre>public&nbsp;&lt;T&gt;&nbsp;T&nbsp;visit(<a href="../../../../../com/google/javascript/rhino/jstype/Visitor.html" title="interface in com.google.javascript.rhino.jstype">Visitor</a>&lt;T&gt;&nbsp;visitor)</pre>
<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#visit(com.google.javascript.rhino.jstype.Visitor)">JSType</a></code></strong></div>
<div class="block">Visit this type with the given visitor.</div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#visit(com.google.javascript.rhino.jstype.Visitor)">visit</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html" title="class in com.google.javascript.rhino.jstype">JSType</a></code></dd>
<dt><span class="strong">Returns:</span></dt><dd>the value returned by the visitor</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../com/google/javascript/rhino/jstype/Visitor.html" title="interface in com.google.javascript.rhino.jstype"><code>Visitor</code></a></dd></dl>
</li>
</ul>
<a name="getPossibleToBooleanOutcomes()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPossibleToBooleanOutcomes</h4>
<pre>public&nbsp;<a href="../../../../../com/google/javascript/rhino/jstype/BooleanLiteralSet.html" title="enum in com.google.javascript.rhino.jstype">BooleanLiteralSet</a>&nbsp;getPossibleToBooleanOutcomes()</pre>
<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#getPossibleToBooleanOutcomes()">JSType</a></code></strong></div>
<div class="block">Computes the set of possible outcomes of the <code>ToBoolean</code> predicate
 for this type. The <code>ToBoolean</code> predicate is defined by the ECMA-262
 standard, 3<sup>rd</sup> edition. Its behavior for simple types can be
 summarized by the following table:
 <table>
 <tr><th>type</th><th>result</th></tr>
 <tr><td><code>undefined</code></td><td>{false}</td></tr>
 <tr><td><code>null</code></td><td>{false}</td></tr>
 <tr><td><code>boolean</code></td><td>{true, false}</td></tr>
 <tr><td><code>number</code></td><td>{true, false}</td></tr>
 <tr><td><code>string</code></td><td>{true, false}</td></tr>
 <tr><td><code>Object</code></td><td>{true}</td></tr>
 </table></div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#getPossibleToBooleanOutcomes()">getPossibleToBooleanOutcomes</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html" title="class in com.google.javascript.rhino.jstype">JSType</a></code></dd>
<dt><span class="strong">Returns:</span></dt><dd>the set of boolean literals for this type</dd></dl>
</li>
</ul>
<a name="isUnknownType()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isUnknownType</h4>
<pre>public&nbsp;boolean&nbsp;isUnknownType()</pre>
<div class="block">We treat this as the unknown type if any of its implicit prototype
 properties is unknown.</div>
<dl>
<dt><strong>Overrides:</strong></dt>
<dd><code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#isUnknownType()">isUnknownType</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html" title="class in com.google.javascript.rhino.jstype">JSType</a></code></dd>
</dl>
</li>
</ul>
<a name="isObject()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isObject</h4>
<pre>public&nbsp;boolean&nbsp;isObject()</pre>
<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#isObject()">JSType</a></code></strong></div>
<div class="block">Tests whether this type is an <code>Object</code>, or any subtype thereof.</div>
<dl>
<dt><strong>Overrides:</strong></dt>
<dd><code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#isObject()">isObject</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html" title="class in com.google.javascript.rhino.jstype">JSType</a></code></dd>
<dt><span class="strong">Returns:</span></dt><dd><code>this &amp;lt;: Object</code></dd></dl>
</li>
</ul>
<a name="hasCachedValues()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>hasCachedValues</h4>
<pre>public&nbsp;boolean&nbsp;hasCachedValues()</pre>
<div class="block">Returns true if any cached values have been set for this type.  If true,
 then the prototype chain should not be changed, as it might invalidate the
 cached values.</div>
</li>
</ul>
<a name="clearCachedValues()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>clearCachedValues</h4>
<pre>public&nbsp;void&nbsp;clearCachedValues()</pre>
<div class="block">Clear cached values. Should be called before making changes to a prototype
 that may have been changed since creation.</div>
</li>
</ul>
<a name="isNativeObjectType()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isNativeObjectType</h4>
<pre>public&nbsp;boolean&nbsp;isNativeObjectType()</pre>
<div class="block">Whether this is a built-in object.</div>
</li>
</ul>
<a name="cast(com.google.javascript.rhino.jstype.JSType)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>cast</h4>
<pre>public static&nbsp;<a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html" title="class in com.google.javascript.rhino.jstype">ObjectType</a>&nbsp;cast(<a href="../../../../../com/google/javascript/rhino/jstype/JSType.html" title="class in com.google.javascript.rhino.jstype">JSType</a>&nbsp;type)</pre>
<div class="block">A null-safe version of JSType#toObjectType.</div>
</li>
</ul>
<a name="isFunctionPrototypeType()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isFunctionPrototypeType</h4>
<pre>public final&nbsp;boolean&nbsp;isFunctionPrototypeType()</pre>
<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#isFunctionPrototypeType()">JSType</a></code></strong></div>
<div class="block">Whether this is the prototype of a function.</div>
<dl>
<dt><strong>Overrides:</strong></dt>
<dd><code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html#isFunctionPrototypeType()">isFunctionPrototypeType</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../com/google/javascript/rhino/jstype/JSType.html" title="class in com.google.javascript.rhino.jstype">JSType</a></code></dd>
</dl>
</li>
</ul>
<a name="getOwnerFunction()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getOwnerFunction</h4>
<pre>public&nbsp;<a href="../../../../../com/google/javascript/rhino/jstype/FunctionType.html" title="class in com.google.javascript.rhino.jstype">FunctionType</a>&nbsp;getOwnerFunction()</pre>
<div class="block">Gets the owner of this if it's a function prototype.</div>
</li>
</ul>
<a name="getCtorImplementedInterfaces()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCtorImplementedInterfaces</h4>
<pre>public&nbsp;java.lang.Iterable&lt;<a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html" title="class in com.google.javascript.rhino.jstype">ObjectType</a>&gt;&nbsp;getCtorImplementedInterfaces()</pre>
<div class="block">Gets the interfaces implemented by the ctor associated with this type.
 Intended to be overridden by subclasses.</div>
</li>
</ul>
<a name="getCtorExtendedInterfaces()">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>getCtorExtendedInterfaces</h4>
<pre>public&nbsp;java.lang.Iterable&lt;<a href="../../../../../com/google/javascript/rhino/jstype/ObjectType.html" title="class in com.google.javascript.rhino.jstype">ObjectType</a>&gt;&nbsp;getCtorExtendedInterfaces()</pre>
<div class="block">Gets the interfaces extended by the interface associated with this type.
 Intended to be overridden by subclasses.</div>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!--   -->
</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../com/google/javascript/rhino/jstype/NumberType.html" title="class in com.google.javascript.rhino.jstype"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../../com/google/javascript/rhino/jstype/Property.html" title="class in com.google.javascript.rhino.jstype"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?com/google/javascript/rhino/jstype/ObjectType.html" target="_top">Frames</a></li>
<li><a href="ObjectType.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested_classes_inherited_from_class_com.google.javascript.rhino.jstype.JSType">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#fields_inherited_from_class_com.google.javascript.rhino.jstype.JSType">Field</a>&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>
